#ifndef GPSTHREAD_H
#define GPSTHREAD_H

#include <QThread>
#include <QMutex>
#include "constants.h"
#include "geocoordinates.h"
#include "serialportsettings.h"
#include <qserialdevice/qserialdevice/abstractserial.h>
#include <nmea.h>

// Поток для получения и разбора данных от GPS-приёмника.

class GPSThread: public QThread
{
    Q_OBJECT

public:
    GPSThread();
    ~GPSThread();
    bool GetCoordinates(GeoCoordinates &aCoord);
    bool GetInfo(nmeaINFO&);
    void Setup(const SerialPortSettings&, const QString&);
    void stop(void);
protected:
    void run(void);
private:
    QMutex coordMutex;
    GeoCoordinates currentCoord;
    nmeaINFO information;
    volatile bool stopped, dataactual;
    QString name;
    SerialPortSettings settings;
signals:
    void CoordinatesChanged(void);
};

#endif // GPSTHREAD_H
